home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- *
- * NSSDC/CDF GENERIC.C
- *
- * Version 2.0, 27-Feb-92, ST Systems (STX)
- *
- * Modification history:
- *
- * V1.0 24-Jan-91, D Grogan/H Leckner Original version (for CDF V2.0).
- * V2.0 27-Feb-92, J Love Modified for IBM-PC port. CDF V2.2.
- * H Leckner
- *
- ******************************************************************************/
-
- #include <stdlib.h>
- #define GENERIC 1
- #include "wfl.h"
- #include "cdfdist.h"
- #include "cdfbrow.h"
-
- #define CP (*c)
- #define GP (**c)
-
-
- void GENERIC_init (c, row, col)
-
- struct generic_struct **c;
- int row, col;
- {
-
- long int i;
- *c = (struct generic_struct *) malloc(sizeof(struct generic_struct));
-
- if ( (row > 0) && (col > 0) )
- WFL_change_window_loc (&generic_inter, col, row);
-
- set_pointer ( (long *) &GP.window, (long) &generic_inter);
-
- GP.num_elements = GENERIC_MAX_ELEMENTS;
-
- for (i = 0 ; i < GP.num_elements ; i++)
- {
- set_pointer ((long *)&(GP.elements)[i], (long) &generic[i]);
- }
- }
-
- int GENERIC_read ( c, prompt, data_len, data_ptr, row, col )
-
- struct generic_struct *c;
- char prompt[];
- int data_len;
- char data_ptr[];
- int row;
- int col;
- {
- int rcode;
- int data_type;
- int element_num;
- int prompt_len;
- int cent_x;
- int cent_y;
-
- prompt_len = strlen(prompt);
- WFL_change_window_width ((struct window_struct *) CP.window,
- prompt_len+data_len);
- cent_x = SCREEN_WIDTH/2 - (prompt_len+data_len)/2;
- cent_y = SCREEN_HEIGHT/2;
-
- if ( (row == 0) && (col == 0) )
- WFL_change_window_loc ((struct window_struct *) CP.window, cent_x, cent_y);
-
- WFL_create_window ((struct window_struct *) CP.window);
- WFL_begin_screen_update ();
- WFL_draw_window ((struct window_struct *) CP.window);
- WFL_generic_form ((struct window_struct *) CP.window,
- (struct form_element_struct **) CP.elements,
- prompt, data_len);
- WFL_end_screen_update ();
-
-
- element_num = 1;
- data_type = DT_STRING;
- WFL_read_element((struct window_struct *) CP.window,
- (struct form_element_struct **) CP.elements,
- (int *) data_ptr, data_type, element_num, &rcode);
-
- WFL_delete_window ((struct window_struct *) CP.window);
- return (rcode);
- }
-
- int GENERIC_form ( prompt_ptr, data_ptr, data_len, row, col )
-
- char *prompt_ptr;
- char *data_ptr;
- int data_len;
- int row;
- int col;
-
- {
- struct generic_struct *generic_ptr;
- int rcode;
-
- GENERIC_init (&generic_ptr, row, col);
- rcode = GENERIC_read (generic_ptr, prompt_ptr,
- data_len, data_ptr, row, col);
- free(generic_ptr);
- return (rcode);
- }
-